#ifndef __DRV_AD7606_H__
#define __DRV_AD7606_H__

#include "stdint.h"
#include "main.h"

#define AD7606_Pin_Low 		(0)
#define AD7606_Pin_High 	(1)



typedef enum
{
	AD7606_OS_0 = 0,
	AD7606_OS_1,
	AD7606_OS_2,
	AD7606_OS_4,
	AD7606_OS_8,
	AD7606_OS_16,
	AD7606_OS_32,
	AD7606_OS_64,
	AD7606_OS_NULL,

}AD7606_OS;

typedef enum
{
	AD7606_5V = 0,
	AD7606_10V,

}AD7606_RANGE;

typedef struct _AD7606_InitHandle
{
	
	AD7606_OS OsType;
	AD7606_RANGE RANGE;
	
	void 	(*Set_OS0)(uint8_t PinState);
	void 	(*Set_OS1)(uint8_t PinState);
	void 	(*Set_OS2)(uint8_t PinState);
	
	void 	(*Set_Range)(uint8_t Range);

}AD7606_InitHandle;

typedef struct _AD7606_OptionHandle
{
	void 	(*AD7606_Reset)(uint8_t PinState);
	void 	(*AD7606_Delay)(uint16_t delayTime);
	void 	(*AD7606_Convst)(uint8_t PinState);
	void 	(*AD7606_Recive)(uint8_t *pData, uint8_t Size);

	uint8_t AD7606_Size;
	float AD7606_Voltage[8];
	uint8_t *AD7606_8Bit_Buff[16];
	uint16_t *AD7606_16Bit_Buff[8];

}AD7606_OptionHandle;

#endif
